package com.atde._01_principle.liskov;


/**
 * @Author: Del
 * @CreateTime: 2025-04-12
 * @Description: 违反里氏替换原则演示
 * @Version: 1.0
 */
public class Liskov01 {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.fuc01(1, 2));
        System.out.println(a.fuc01(2, 1));
        System.out.println("--------------");
        B b = new B();
        // 调用了原来父类的方法 但是已经被重写导致不是我们想要的结果
        System.out.println(b.fuc01(1, 2));
        System.out.println(b.fuc01(2, 1));


        System.out.println(b.fuc02(1, 2));
    }


}
// A类
class A {
    // 返回两个数的和
    public int fuc01(int num01, int num02) {
        return num01 - num02;
    }
}

// B类 继承 A类
// 增加一个新的功能，完成两个数相加，然后和9相加
class B extends A {
    @Override
    public int fuc01(int num01, int num02) {
        return num01 + num02;
    }

    public int fuc02(int num01, int num02) {
        return fuc01(num01, num02) + 9;
    }
}
